import $http from "./request.js";
export default {
	// 用户token 测试token：4cd36bf70649475ac0cd6fae78250954474a4350
	token: false,
	// 用户信息
	userinfo: false,
	// 初始化
	__init() {
		// 获取用户信息
		this.userinfo = wx.getStorageSync("userinfo");
		this.token = wx.getStorageSync("token");
	},
	// 权限验证跳转
	// 类似路由守卫
	navigate(options, NoCheck = false, type = "navigateTo") {
		// 是否登录验证
		// $http使用了request.js的方法
		if (!$http.checkToken(true)) return;
		// 跳转
		switch (type) {
			case "navigateTo":
				wx.navigateTo(options);
				break;
			case "redirectTo":
				wx.redirectTo(options);
				break;
			case "reLaunch":
				wx.reLaunch(options);
				break;
			case "switchTab":
				wx.switchTab(options);
				break;
		}
	},
	// 登录
	async login(options = {}) {
		// 请求登录
		const {
			data: res
		} = await $http.post(options.url, options.data)
		// 登录失败
		console.log(res)
		if (res.code != 200) {
			wx.showToast({
				title: res.message,
				icon: "none"
			})
			return false;
		}
		// 登录成功 保存状态
		this.token = res.data.token;
		this.userinfo = res.data;
		// 本地存储
		wx.setStorageSync("userinfo", this.userinfo);
		wx.setStorageSync("token", this.token);
		return true;
	},
	// 退出登录
	async logout(showToast = true) {
		// 退出登录
		// await $http.post('/user/logout',{},{ 
		// 	token:true,
		// 	checkToken:true ,
		// });
		// 清除缓存
		wx.removeStorageSync('userinfo');
		wx.removeStorageSync('token');
		// 清除状态
		this.token = false;
		this.userinfo = false;
		// 返回home页面
		wx.switchTab({
			url: "/pages/index/index",
			success() {
				let page = getCurrentPages().pop(); //跳转页面成功之后
				if (!page) return;
				page.onLoad(); //如果页面存在，则重新刷新页面
			}
		})
		// 退出成功
		if (showToast) {
			return wx.showToast({
				title: '退出登录成功'
			});
		}
	},

	// 获取用户信息
	async getUserInfo() {
		const {
			data: res
		} = await $http.get('/auth/getUserInfo', {
			uid: wx.getStorageSync('userinfo').uid
		}, {
			token: true,
			checkToken: true
		})
		console.log("获取用户信息", res)
		if (res.code != 200) {
			wx.showToast({
				title: res.message,
				icon: "none"
			})
		} else {
			wx.setStorageSync('info', res.data)
		}
	},

		// 获取用户信息
		async getClaimUserInfo(options = {}) {
			const {
				data: res
			} = await $http.get('/auth/getUserInfo', options.data, {
				token: true,
				checkToken: true
			})
			console.log("获取用户信息", res)
			if (res.code != 200) {
				wx.showToast({
					title: res.message,
					icon: "none"
				})
			} else {
				wx.setStorageSync('claimUserInfo', res.data)
			}
		},

	// 修改用户信息
	async updateUserInfo(options = {}) {
		const {
			data: res
		} = await $http.post('/auth/updateUserInfo', options.data, {
			token: true,
			checkToken: true
		})
		console.log("修改用户信息", res)
		if (res.code != 200) {
			wx.showToast({
				title: res.message,
				icon: "none"
			})
		} else {
			wx.showToast({
				title: res.message,
				icon: "success"
			})
		}
	},
	// 发布新帖子
	async addNewPost(options = {}) {
		const {
			data: res
		} = await $http.post('/post/addNewPost', options.data, {
			token: true,
			checkToken: true
		})
		console.log("发布新帖子", res)
		if (res.code != 200) {
			wx.showToast({
				title: res.message,
				icon: "none"
			})
		} else {
			wx.showToast({
				title: res.message,
				icon: "success"
			})
			setTimeout(function () {
				wx.switchTab({
					url: '../../pages/home/home',
				})
			}, 1000);

		}
	},
	// 按条件查询帖子
	async findPosts(options = {}) {
		const {
			data: res
		} = await $http.get('/post/findPosts', options.data, {
			token: true,
			checkToken: true
		})
		if (res.code != 200) {
			wx.showToast({
				title: res.message,
				icon: "none"
			})
		} else {
			wx.setStorageSync('findList', res.data)
		}
	},

	// 搜素帖子
	async searchPosts(options = {}) {
		const {
			data: res
		} = await $http.get('/post/searchPosts', options.data, {
			token: true,
			checkToken: true
		})
		if (res.code != 200) {
			wx.showToast({
				title: res.message,
				icon: "none"
			})
		} else {
			wx.setStorageSync('searchList', res.data)
		}
	},

	// 搜素我的帖子
	async myPosts() {
		const {
			data: res
		} = await $http.post('/post/myPosts', {
			uid: wx.getStorageSync('userinfo').uid
		}, {
			token: true,
			checkToken: true
		})
		console.log("我的帖子", res)
		if (res.code != 200) {
			wx.showToast({
				title: res.message,
				icon: "none"
			})
		} else {
			wx.setStorageSync('myList', res.data)
		}
	},

	// 删除帖子
	async deletePost(options = {}) {
		const {
			data: res
		} = await $http.post('/post/deletePost', options.data, {
			token: true,
			checkToken: true
		})
		console.log("我的帖子", res)
		if (res.code != 200) {
			wx.showToast({
				title: res.message,
				icon: "none"
			})
		} else {
			wx.showToast({
				title: '删除成功',
				icon: 'success'
			})
		}
	},

	// 联系人列表
	async listContact() {
		const {
			data: res
		} = await $http.get('/message/listContact', {
			uid: wx.getStorageSync('userinfo').uid
		}, {
			token: true,
			checkToken: true
		})
		console.log("联系人列表", res)
		var that = this
		if (res.code != 200) {
			wx.showToast({
				title: res.message,
				icon: "none"
			})
		} else {
			wx.setStorageSync('contactList', res.data.list)
			wx.setStorageSync('contact', res.data)
		}
	},
	// 消息记录
	async listMessages(options = {}) {
		const {
			data: res
		} = await $http.get('/message/listMessages', options.data, {
			token: true,
			checkToken: true
		})
		console.log("消息记录", res)
		if (res.code != 200) {
			wx.showToast({
				title: res.message,
				icon: "none"
			})
		} else {
			wx.setStorageSync('messageList', res.data)
		}
	},

	// 读取信息
	async readMessages(options = {}) {
		const {
			data: res
		} = await $http.get('/message/readMessages', options.data, {
			token: true,
			checkToken: true
		})
		console.log("读取信息", res)
		if (res.code != 200) {
			wx.showToast({
				title: res.message,
				icon: "none"
			})
		} else {

		}
	},

	// 发送信息
	async sendOne(options = {}) {
		const {
			data: res
		} = await $http.get('/message/sendOne', options.data, {
			token: true,
			checkToken: true
		})
		console.log("发送信息", res)
		if (res.code != 200) {
			wx.showToast({
				title: res.message,
				icon: "none"
			})
		} else {

		}
	},

	// 添加联系人
	async addContact(options = {}) {
		const {
			data: res
		} = await $http.get('/message/addContact', options.data, {
			token: true,
			checkToken: true
		})
		// console.log("添加联系人", res)
		if (res.code != 200) {
			// wx.showToast({
			// 	title: res.message,
			// 	icon: "none"
			// })
		} else {

		}
	},
	
	// 联系人置顶
	async setOnTop(options = {}) {
		const {
			data: res
		} = await $http.get('/message/setOnTop', options.data, {
			token: true,
			checkToken: true
		})
		console.log("联系人置顶", res)
		if (res.code != 200) {
			// wx.showToast({
			// 	title: res.message,
			// 	icon: "none"
			// })
		} else {

		}
	},
	// 联系人删除
	async deleteContact(options = {}) {
		const {
			data: res
		} = await $http.get('/message/deleteContact', options.data, {
			token: true,
			checkToken: true
		})
		console.log("联系人删除", res)
		if (res.code != 200) {
			// wx.showToast({
			// 	title: res.message,
			// 	icon: "none"
			// })
		} else {
			wx.showToast({
				title: "删除成功",
				icon: "success"
			})
		}
	},

	// 确认找回物品
	async confirmClaimLost(options = {}) {
		const {
			data: res
		} = await $http.post('/post/confirmClaimLost', options.data, {
			token: true,
			checkToken: true
		})
		console.log("确认找回物品", res)
		if (res.code != 200) {
			// wx.showToast({
			// 	title: res.message,
			// 	icon: "none"
			// })
		} else {
			wx.showToast({
				title: "成功",
				icon: "success"
			})
		}
	},

		// 确认找到失主
		async confirmClaimFound(options = {}) {
			const {
				data: res
			} = await $http.post('/post/confirmClaimFound', options.data, {
				token: true,
				checkToken: true
			})
			console.log("确认找到失主", res)
			if (res.code != 200) {
				// wx.showToast({
				// 	title: res.message,
				// 	icon: "none"
				// })
			} else {
				wx.showToast({
					title: "成功",
					icon: "success"
				})
			}
		},

}